// 无法判断属于int还是str的写在这里
// 判断字符串是否全部是数字 str：字符串指针
int isInt(char * str)
{
	for (int i = 0; str[i] != '\0'; ++i)
		if (str[i] < 48 || str[i] > 57)	
			return 0;
	return 1;
}

// 数字字符串 转换成 数字
int strToInt(char * str)
{
	int a = 0, i;
	for (i = 0; str[i] > 47 && str[i] < 58; ++i)
		a = a * 10 + (str[i] - 48);
	return a;
}

// 数字 转换成 数字字符串
char * intToStr(char * str, int num)
{
	int i, len, a = num, b;
    len = getIntLen(num);
    str[len] = '\0';
    while (a > 0)
    {
        --len;
        b = a % 10;
        a /= 10;
        str[len] = (char)(b + '0');
    }
    return str;
}

// 浮点数字符串 转 浮点数
double strToDouble(char * str)
{
    double a = 0.0, b = 0.0;
    int i, j, l = strlen(str);

    // 得到小数点左边数
    for (i = 0; i < l && str[i] != '.'; ++i) 
        a = a * 10 + (str[i] - '0');
    
    // 得到小数点右边数
    for (j = l - 1; j > i; --j)
        b = (b + (str[j] - '0')) * 0.1;
    
    return a + b;
}

// 浮点数 转 浮点数字符串
char * doubleToStr(char * str, double num)
{
    double a = num, c;
    int b = (int)num, t, len1, len2, len3;
    c = a - b;

    len1 = getIntLen(b); // 整数长度 3
    len2 = len1 + 1; // 小数开始位置 4
    len3 = len2 + getDoubleLen(c); // 总长度 8
    str[len1] = '.';
    str[len3] = '\0';

    // 整数部分
    while (len1--)
    {
        t = b % 10;
        b /= 10;
        str[len1] = t + '0';
    }
    
    // 小数部分
    while (len2 < len3)
    {
        c *= 10;
        t = (int)c % 10;
        str[len2] = t + '0';
        ++len2;
    }

    return str;
}